From e011ff2e399eb4623e3b6e09ecaeb740f0599222 Mon Sep 17 00:00:00 2001 From: "smh22@firebug.cl.cam.ac.uk" Date: Fri, 13 May 2005 18:28:45 +0000 Subject: [PATCH] bitkeeper revision 1.1389.1.61 (4284f1ddAO6PwLXgaP83tPIB0NH4cw) Cset exclude: cl349@firebug.cl.cam.ac.uk|ChangeSet|20050513143651|29037 --- tools/libxutil/sxpr_parser.c | 25 +++---------------------- tools/libxutil/sxpr_parser.h | 4 ++-- 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/tools/libxutil/sxpr_parser.c b/tools/libxutil/sxpr_parser.c index ba29c49f9c..d32ef959b3 100644 --- a/tools/libxutil/sxpr_parser.c +++ b/tools/libxutil/sxpr_parser.c @@ -160,8 +160,6 @@ void Parser_free(Parser *z){ if(!z) return; objfree(z->val); z->val = ONONE; - if (z->buf) - deallocate(z->buf); deallocate(z); } @@ -173,7 +171,6 @@ Parser * Parser_new(void){ if(!z) goto exit; err = 0; - z->buf = NULL; reset(z); exit: if(err){ @@ -204,16 +201,8 @@ static int inputchar(Parser *p, char c){ static int savechar(Parser *p, char c){ int err = 0; if(p->buf_i >= p->buf_n){ - char *nbuf; - nbuf = allocate(2 * (p->buf_n + 1)); - if (nbuf == NULL) { - err = -ENOMEM; - goto exit; - } - memcpy(nbuf, p->buf, p->buf_i); - deallocate(p->buf); - p->buf = nbuf; - p->buf_n = 2 * (p->buf_n + 1) - 1; + err = -ENOMEM; + goto exit; } p->buf[p->buf_i] = c; p->buf_i++; @@ -698,16 +687,8 @@ int end_list(Parser *p){ static void reset(Parser *z){ IOStream *error_out = z->error_out; int flags = z->flags; - int buf_n = z->buf_n; - char *buf = z->buf; memzero(z, sizeof(Parser)); - if (buf) { - z->buf = buf; - z->buf_n = buf_n; - } else { - z->buf = (char *)allocate(PARSER_BUF_SIZE); - z->buf_n = PARSER_BUF_SIZE - 1; - } + z->buf_n = sizeof(z->buf) - 1; z->buf_i = 0; z->line_no = 1; z->char_no = 0; diff --git a/tools/libxutil/sxpr_parser.h b/tools/libxutil/sxpr_parser.h index a47554633d..0a3fde55fd 100644 --- a/tools/libxutil/sxpr_parser.h +++ b/tools/libxutil/sxpr_parser.h @@ -28,7 +28,7 @@ /** Size of a parser input buffer. * Tokens read must fit into this size (including trailing null). */ -#define PARSER_BUF_SIZE 1024 +#define PARSER_BUF_SIZE 4096 struct Parser; typedef int ParserStateFn(struct Parser *, char c); @@ -60,7 +60,7 @@ typedef struct Parser { /** Lookahead character. */ char c; /** Buffer for reading tokens. */ - char *buf; + char buf[PARSER_BUF_SIZE]; /** Size of token buffer. */ int buf_n; int buf_i; -- 2.30.2